package day0117;

class TestFather{
    TestFather(){  System.out.println("父类构造方法");  }//4.
    { System.out.println("父类代码块");}//3.
    static { System.out.println("父类static代码块");}/////1.
}

public class TestChild3 extends TestFather{
    TestChild3(){ super();  System.out.println("子类构造方法");  }//6.
    { System.out.println("子类代码块");}//5.
    static { System.out.println("static代码块");}/////2.

    public static void main(String[] args) {
        new TestChild3();
    }//创建子类对象。 -- 子类构造方法  构造方法内的第一行  super() 调用父类构造方法(子类和父类都使用了)
     //先加载父类字节码文件， 然后加载子类字节码文件 。所以会先执行1.父类static代码块
     //然后执行 2.子类static代码块  //执行父类构造方法之前会先执行父类的  3.父类代码块
     //然后执行  4.父类构造方法    //执行子类构造方法之前会先执行子类的 5.子类代码块
     //6. 最后执行子类构造方法
}

